home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu276.dms
/
pu276.adf
/
BBBBS
/
BBBBSDoors53.LZH
/
rexxDoors
/
RollDice.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1991-12-05
|
3KB
|
54 lines
/* Program name: RollDice */
/* */
/* This program simulates the roll of two dice, and displays the */
/* results in the CLI window. */
/* Program taken from "AmigaDOS Inside and Out" disk by Abacus */
/* */
/* To run this program, type: */
/* rx rolldice */
/* */
CR='0D'x
d.1.1 = ' ' /* Define dice shapes */
d.2.1 = ' * ' /* using 'stem' variables. */
d.3.1 = ' ' /* */
d.1.2 = ' *' /* There are actually only */
d.2.2 = ' ' /* five patterns here: */
d.3.2 = '* ' /* ' ''* *'' *'' * ''* ' */
d.1.3 = ' *' /* */
d.2.3 = ' * ' /* Can you come up with a */
d.3.3 = '* ' /* more economical way of */
d.1.4 = '* *' /* defining the dice shapes? */
d.2.4 = ' '
d.3.4 = '* *'
d.1.5 = '* *'
d.2.5 = ' * '
d.3.5 = '* *'
d.1.6 = '* *'
d.2.6 = '* *'
d.3.6 = '* *'
SAY 'Total rolled is:' roll(6)||CR /* Print total to CLI. */
EXIT /* All done. */
roll: /* Define the 'roll' function. */
ARG n /* Get high value for die. */
x=OPEN(f,'RAM:DUMMY','W') /* open a dummy file. */
IF x=0 THEN EXIT(20); /* should not fail, but.. */
CALL WRITELN(f,'dummy') /* write line */
CALL CLOSE(f) /* be polite and clean */
die1=(WORD(STATEF('RAM:DUMMY'),7)%1)//n+1 /* 0 >= micros < 3000 */
CALL DELAY(28+LEFT(die1,2)) /* Wait for file to close */
x=OPEN(f,'RAM:DUMMY','W') /* open a dummy file. */
IF x=0 THEN EXIT(20); /* should not fail, but.. */
CALL WRITELN(f,'dummy') /* write line */
CALL CLOSE(f) /* be polite and clean */
die2=(WORD(STATEF('RAM:DUMMY'),7)%1)//n+1 /* 0 >= micros < 3000 */
SAY CR
SAY ' --- ---'CR
SAY ' |'d.1.die1'| |'d.1.die2'|'CR /* Print die face */
SAY ' |'d.2.die1'| |'d.2.die2'|'CR
SAY ' |'d.3.die1'| |'d.3.die2'|'CR
SAY ' --- ---'CR
SAY CR
RETURN die1+die2 /* Return the value rolled */